{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Hypothesis Testing1_(t-Tests).ipynb",
      "provenance": [],
      "authorship_tag": "ABX9TyMGaHc5lR3JjbO1WZ47oQVh",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/Divyanshu-ISM/Machine-Learning-Deep-Learning/blob/main/Hypothesis_Testing1_(t_Tests).ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yh4fqtBVuoMj"
      },
      "source": [
        "# Hypothesis Testing With Python - Chapter 1. \n",
        "\n",
        ">## This chapter explains 'T-Tests'.\n",
        "\n",
        "> Divyanshu Vyas | O&G Data Science\n",
        "\n",
        "Hyp. Tests are important Data Analysis and Decision Making tools. \n",
        "\n",
        "**Which tests will be covered?**\n",
        "\n",
        "1. t-Test\n",
        "2. Chi-Square Test\n",
        "3. ANOVA test"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wzmMLQoGvV08"
      },
      "source": [
        "# 1. One Sample T-Test\n",
        "\n",
        "Note : T-Tests are for Numerical populations.\n",
        "\n",
        "### Example 1 : To test weather the means of a population and a sample of it, are different. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uAL_1GKf_gMp"
      },
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt"
      ],
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kiZy4uX1DZrY"
      },
      "source": [
        "# import pandas as pd\n",
        "import scipy.stats as stats\n",
        "import math"
      ],
      "execution_count": 17,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RzU07wZACJgu"
      },
      "source": [
        "def test_results(p):\n",
        "  if p<= 0.05:\n",
        "    print('The H0 is Rejected.')\n",
        "  else:\n",
        "    print('The H0 is failed to be rejected.')"
      ],
      "execution_count": 12,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "XuJYZFTbuaEj"
      },
      "source": [
        "#Population\n",
        "ages = [10,20,30,10,20,22,32,42,33,44,12,34,56,70,26,10,50,18,26,24,21,15,67,34,25,24,36,34,25,32,33,26]"
      ],
      "execution_count": 3,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "I7sb5HqE_Zft",
        "outputId": "48d75a2e-c897-45ad-f941-afba72d63d6b"
      },
      "source": [
        "len(ages)"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "32"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "X6_h5By3_tle",
        "outputId": "3299ce1e-4e31-4a22-d826-3f52520d35d1"
      },
      "source": [
        "av_ages = np.mean(ages)\n",
        "av_ages"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "30.03125"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "sAXGbpskBKrn"
      },
      "source": [
        "#Sampling\n",
        "sample_size=10\n",
        "age_sample = np.random.choice(ages,size=sample_size)"
      ],
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ITlHAkohBduc"
      },
      "source": [
        "from scipy.stats import ttest_1samp"
      ],
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "b_7D-67-BlWf"
      },
      "source": [
        "ttest,p_value = ttest_1samp(age_sample,av_ages)"
      ],
      "execution_count": 10,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kP3oXWSlBw8i",
        "outputId": "b90fb21b-43eb-4a57-d014-7686289c18f6"
      },
      "source": [
        "p_value"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.9500696426526939"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "r1Y8g_ScB1Fp"
      },
      "source": [
        "H0 : Sample & Pop Mean (Age) are NOT diff.\n",
        "\n",
        "H1 : Sample & Pop Mean (Age) are diff."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CceBYGsiCfkI",
        "outputId": "f3c96ef3-44c2-4ca7-e70d-59526005c07d"
      },
      "source": [
        "test_results(p_value)"
      ],
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "The H0 is failed to be rejected.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "s_wJRwdFByRm",
        "outputId": "8faae730-1105-4f9d-8495-93f956e71653"
      },
      "source": [
        "#Hence Conclusion- The Null Hyp. is accepted. Hence, \n",
        "#Sample and Pop means are same (not  much diff). \n",
        "\n",
        "#Verification\n",
        "age_sample.mean()"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "29.7"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7LCKKc0AC1_J"
      },
      "source": [
        "######################################"
      ],
      "execution_count": 16,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LAZb_OR8DMCg"
      },
      "source": [
        "## Example 2\n",
        "\n",
        "We have a School. \n",
        "\n",
        "And we have Class A and Class B in that School. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qI7--hg9DKxe"
      },
      "source": [
        "school_ages=stats.poisson.rvs(loc=18,mu=35,size=1500)\n",
        "classA_ages=stats.poisson.rvs(loc=18,mu=30,size=60)"
      ],
      "execution_count": 18,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 537
        },
        "id": "8-LmsCzJDifB",
        "outputId": "8851f34a-3dda-4f1a-f43c-98da62b31fb6"
      },
      "source": [
        "plt.style.use('default')\n",
        "sns.distplot(school_ages)\n",
        "sns.distplot(classA_ages)"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/distributions.py:2551: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
            "  warnings.warn(msg, FutureWarning)\n",
            "/usr/local/lib/python3.6/dist-packages/seaborn/distributions.py:2551: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
            "  warnings.warn(msg, FutureWarning)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f2389e50b38>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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Y8SIEcyaNYuysjISExMBmDRpEtHR0cyYMQNwT3LesWNH3XFWVhZbtmwhKCiIbt26ndNrioiIiBgagCZOnMjRo0eZPn06OTk5DBo0iOXLl9dNYs7IyMBs/qFJlZ2dzeDBg+t+/8ILL/DCCy8wevRoVq1adU6vKSIiImJyuVwuo4toaUpKSrDb7RQXFxMSEmJ0OSJywqL1GQ2+5rb42GaoRERaoob8/NZdYCIiIuJ1FIBERETE6ygAiYiIiNdRABIRERGvowAkIiIiXkcBSERERLyOApCIiIh4HQUgERER8ToKQCIiIuJ1FIBERETE6ygAiYiIiNdRABIRERGvowAkIiIiXkcBSERERLyOApCIiIh4HQUgERER8ToKQCIiIuJ1FIBERETE6ygAiYiIiNdRABIRERGvowAkIiIiXkcBSERERLyOApCIiIh4HQUgERER8ToKQCIiIuJ1FIBERETE6ygAiYiIiNdRABIRERGvowAkIiIiXkcBSERERLyO1egCRERamkXrMxp8zW3xsc1QiYg0F3WARERExOsoAImIiIjXUQASERERr6MAJCIiIl5HAUhERES8jgKQiIiIeB0FIBEREfE6CkAiIiLidRSARERExOsoAImIiIjXUQASERERr6MAJCIiIl5HAUhERES8jgKQiIiIeB0FIBEREfE6CkAiIiLidRSARERExOsoAImIiIjXUQASERERr2N4AJo7dy5xcXH4+fkRHx/Phg0bznj+kiVL6NWrF35+fvTv359ly5bV+3ppaSlTp06lY8eO+Pv706dPH+bNm9ecb0FERERaGUMD0OLFi0lKSuKpp54iLS2NgQMHMmbMGPLy8k55/tq1a7n11lu5++672bx5M+PHj2f8+PFs37697pykpCSWL1/OO++8w86dO3n44YeZOnUqH3/8safeloiIiLRwhgagmTNncu+995KYmFjXqQkICGD+/PmnPH/27NmMHTuWRx99lN69e/PMM88wZMgQ5syZU3fO2rVrmTx5MpdffjlxcXHcd999DBw48KydJREREfEehgWg6upqUlNTSUhI+KEYs5mEhARSUlJOeU1KSkq98wHGjBlT7/xRo0bx8ccfk5WVhcvlYuXKlezZs4err776tLVUVVVRUlJS7yEiIiIXLsMCUH5+Pg6Hg4iIiHrPR0REkJOTc8prcnJyznr+K6+8Qp8+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\n",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "YHo0BdGnDlYu"
      },
      "source": [
        "ttest, p_val = ttest_1samp(classA_ages,school_ages.mean())"
      ],
      "execution_count": 22,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cr9WmHGDEu6k",
        "outputId": "bb4aae1c-5aa0-4b14-a8ce-4219dfa0a11a"
      },
      "source": [
        "test_results(p_val)"
      ],
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "The H0 is Rejected.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "HP21pwhaE5xm"
      },
      "source": [
        "It means that School Age mean and Class A age mean is significantly different."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mj3B-upbEy3h",
        "outputId": "b868a310-777e-49a8-a22e-f246c454847a"
      },
      "source": [
        "school_ages.mean(), classA_ages.mean()"
      ],
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(52.96066666666667, 48.233333333333334)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "J8jXZpxFFH07"
      },
      "source": [
        "# 2. : Two Sample T-Test with Python\n",
        "\n",
        "> Also called Independent t Test\n",
        "\n",
        "> stats.ttest_ind is used"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6UECF4KBFCPN"
      },
      "source": [
        "school_ages=stats.poisson.rvs(loc=18,mu=35,size=1500)\n",
        "classA_ages=stats.poisson.rvs(loc=18,mu=30,size=60)\n",
        "ClassB_ages=stats.poisson.rvs(loc=18,mu=33,size=60)"
      ],
      "execution_count": 25,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jPZqPPBjFiLN",
        "outputId": "303d7c1a-53a9-4566-d679-8b7dc0aa3ea9"
      },
      "source": [
        "_,p_value=stats.ttest_ind(a=classA_ages,b=ClassB_ages,equal_var=False)\n",
        "\n",
        "test_results(p_value)"
      ],
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "The H0 is Rejected.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yP_LC7Y3F5Is",
        "outputId": "7d0d3fa9-9161-49ca-b330-e3fc2f38c7b9"
      },
      "source": [
        "classA_ages.mean(), school_ages.mean() , ClassB_ages.mean()"
      ],
      "execution_count": 27,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(47.96666666666667, 52.821333333333335, 51.11666666666667)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 27
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wBDCBfU2F1GT"
      },
      "source": [
        "## This tests help know weather there's a significant variation in means \n",
        "## from a sample to other sample, and hence the overall mean of the population."
      ],
      "execution_count": 28,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_JkhONfDGWlf"
      },
      "source": [
        "#########################################"
      ],
      "execution_count": 29,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Rjk1uVI_Gh9H"
      },
      "source": [
        "# 3. Paired T-Test\n",
        "\n",
        "> To check weather from one point of time to the other, there has been a significant change in the mean of a population or not. \n",
        "\n",
        "> Example, mean height of a group of kids in 2020 vs their hights in 2021 June."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uOhoJJFbGgIC"
      },
      "source": [
        "weight1=[25,30,28,35,28,34,26,29,30,26,28,32,31,30,45]\n",
        "weight2=weight1+stats.norm.rvs(scale=5,loc=-1.25,size=15)"
      ],
      "execution_count": 30,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Bg4XJOU6G99u"
      },
      "source": [
        "#Performing the test\n",
        "_,p_value=stats.ttest_rel(a=weight1,b=weight2)"
      ],
      "execution_count": 31,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2jBuZoOZHFHN",
        "outputId": "44542fff-9eaf-4ee6-cdf6-23ad37be4265"
      },
      "source": [
        "test_results(p_value)"
      ],
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "The H0 is failed to be rejected.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Q-sbncBeHJuD"
      },
      "source": [
        "# hence it means that the change from weight 1 to weight 2 is not significant."
      ],
      "execution_count": 33,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "J0ZFnhctHQmc"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}